package org.example.rubbish.entity;

import lombok.Data;
import java.time.LocalDateTime;

@Data
public class Alarm {
    private Long id;
    private String alarmId;          // 报警唯一标识
    private String title;            // 报警标题
    private String content;          // 报警内容
    private String source;           // 报警源
    private String level;            // 报警级别: LOW, MEDIUM, HIGH, CRITICAL
    private String type;             // 报警类型: HARDWARE, SOFTWARE, BUSINESS, SECURITY
    private Boolean acknowledged;    // 是否已确认
    private String acknowledgedBy;   // 确认人
    private LocalDateTime acknowledgedTime; // 确认时间
    private LocalDateTime createTime;       // 创建时间
    private LocalDateTime updateTime;       // 更新时间
    private String extraInfo;        // 扩展信息(JSON格式)

    public Alarm() {
    }

    public Alarm(Long id, String alarmId, String title, String content, String source, String level, String type, Boolean acknowledged, String acknowledgedBy, LocalDateTime acknowledgedTime, LocalDateTime createTime, LocalDateTime updateTime, String extraInfo) {
        this.id = id;
        this.alarmId = alarmId;
        this.title = title;
        this.content = content;
        this.source = source;
        this.level = level;
        this.type = type;
        this.acknowledged = acknowledged;
        this.acknowledgedBy = acknowledgedBy;
        this.acknowledgedTime = acknowledgedTime;
        this.createTime = createTime;
        this.updateTime = updateTime;
        this.extraInfo = extraInfo;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getAlarmId() {
        return alarmId;
    }

    public void setAlarmId(String alarmId) {
        this.alarmId = alarmId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Boolean getAcknowledged() {
        return acknowledged;
    }

    public void setAcknowledged(Boolean acknowledged) {
        this.acknowledged = acknowledged;
    }

    public String getAcknowledgedBy() {
        return acknowledgedBy;
    }

    public void setAcknowledgedBy(String acknowledgedBy) {
        this.acknowledgedBy = acknowledgedBy;
    }

    public LocalDateTime getAcknowledgedTime() {
        return acknowledgedTime;
    }

    public void setAcknowledgedTime(LocalDateTime acknowledgedTime) {
        this.acknowledgedTime = acknowledgedTime;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getExtraInfo() {
        return extraInfo;
    }

    public void setExtraInfo(String extraInfo) {
        this.extraInfo = extraInfo;
    }
}